package com.zhihao.zhihaopicturebackend.constant;

import cn.hutool.core.util.RandomUtil;

/**
 * @author Jackson
 * @create 2024/12/27 14:17
 * @description 图片redis/caffeine缓存key  多级缓存相关常量
 */
public interface PictureListByPageRedisKeyConstant {

    /**
     * (分页查询图片列表接口)缓存key前缀:项目+业务
     *      zhihaopicture:listPictureVOByPage:${查询条件key}(md5加墨request)
     */
    String PICTURE_BY_PAGE_KEY_PREFIX_REDIS = "zhihaopicture:listPictureVOByPageWithCache:";

    /**
     *  redisKey过期时间 (5-10分钟)  甚至可以设置的更长 用户多少
     *      缓存雪崩：缓存时间随机范围生成---防止大量缓存同一时间过期
     */
    Integer EXPIRE_TIME_REDIS = 300 + RandomUtil.randomInt(0, 300);

    /**
     * caffeine本地缓存精简key
     */
    String PICTURE_BY_PAGE_KEY_SUFFIX_CAFFEINE = "listPictureVOByPageWithCache:";

    /**
     * caffeine最大缓存数量
     */
    Long MAX_SIZE_CAFFEINE = 10000L;

    /**
     * caffeine本地缓存过期时间(单位minutes)
     */
    Long EXPIRE_TIME_CAFFEINE = 5L;

}
